package com.skywolf.chem.usercenter.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.skywolf.chem.usercenter.entity.User;
import com.skywolf.chem.usercenter.pojo.param.PasswordChangeParam;
import com.skywolf.chem.usercenter.pojo.param.UserCreateParam;
import com.skywolf.chem.usercenter.pojo.param.UserQueryParam;
import com.skywolf.chem.usercenter.pojo.param.UserUpdateParam;

/**
 * <p>
 * 系统用户 服务类
 * </p>
 *
 * @author leo
 * @since 2019-11-24
 */
public interface IUserService extends IService<User> {

    Long createUser(UserCreateParam userCreateParam);

    void updateUser(UserUpdateParam userUpdateParam);

    void deleteUser(Long id);

    void forbidUser(Long id, Integer status);

    void resetPassword(Long id);

    User getByUsername(String username);

    void changePassword(PasswordChangeParam passwordChangeParam);

    void checkExistUser(Long id);

    IPage<User> pageList(UserQueryParam userQueryParam);
}
